Tempo
- By Canonical Observability
Channel | Revision | Published | Runs on |
---|---|---|---|
latest/stable | 51 | 01 Aug 2024 | |
latest/stable | 9 | 16 Feb 2024 | |
latest/candidate | 71 | 01 Aug 2024 | |
latest/candidate | 9 | 12 Dec 2023 | |
latest/beta | 75 | 01 Aug 2024 | |
latest/beta | 9 | 12 Dec 2023 | |
latest/edge | 80 | 02 Sep 2024 | |
latest/edge | 9 | 31 Jul 2023 |
juju deploy tempo-k8s --channel beta
Deploy Kubernetes operators easily with Juju, the Universal Operator Lifecycle Manager. Need a Kubernetes cluster? Install MicroK8s to create a full CNCF-certified Kubernetes system in under 60 seconds.
Platform:
Get charmed Tempo up and running
This tutorial covers how to get started with tempo-k8s
deployment. We’ll have loki-k8s
as our source of traces that will send traces to a tempo-k8s
endpoint and view those traces.
To deploy Tempo using this operator you would need a juju microk8s controller bootstrapped and an added model.
Deploy Tempo
juju deploy tempo-k8s tempo --trust # stable channel
Verify deployment
Wait until the status settles to active/idle
with empty Message
.
Deploy loki-k8s
juju deploy loki-k8s loki --trust
Wait until the status settles to active/idle
.
Push charm traces
integrating with tempo-k8s
over the tracing
endpoint will enable loki
to push traces to an endpoint given by tempo.
juju integrate tempo:tracing loki:tracing
Wait until the status settles to active/idle
.
Access pushed traces
In order to view traces that are being pushed to tempo:
First, run:
juju status
This should result in an output similar to the one below:
Model Controller Cloud/Region Version SLA Timestamp
test microk8s microk8s/localhost 3.4.2 unsupported 10:43:10+02:00
App Version Status Scale Charm Channel Rev Address Exposed Message
loki 2.9.5 active 1 loki-k8s latest/stable 128 10.152.183.59 no
tempo ... active 1 tempo-k8s latest/stable 30 10.152.183.99 no
Unit Workload Agent Address Ports Message
loki/0* active idle 10.1.157.122
tempo/0* active idle 10.1.157.92
From this output, from the Address
column of tempo
App, retrieve the IP address 10.152.183.99
in this case.
Then, run:
curl http://10.152.183.99:3200/api/search
This should result in an output similar to the one below:
{"traces":[{"traceID":"a2027a15a699abe7aa486acebb3ad666","rootServiceName":"loki","rootTraceName":"charm exec","startTimeUnixNano":"1714034639056755713","durationMs":428},{"traceID":"75fcce6ce2d039d4e6eaef124e990f71","rootServiceName":"tempo","rootTraceName":"charm exec","startTimeUnixNano":"1714034590401418014","durationMs":100},{"traceID":"a8a7aaf06d0b1c3b4ef60f712ed4a414","rootServiceName":"loki","rootTraceName":"charm exec","startTimeUnixNano":"1714034371768834582","durationMs":403},{"traceID":"8b24259875109cee34fac2974d261dc0","rootServiceName":"tempo","rootTraceName":"charm exec","startTimeUnixNano":"1714034330738254164","durationMs":90},{"traceID":"7420decc3f4ffbbc7198da2511e79b2f","rootServiceName":"loki","rootTraceName":"charm exec","startTimeUnixNano":"1714034039177431462","durationMs":302},{"traceID":"d8be3a5f8951bb1737533acec2cbefd","rootServiceName":"tempo","rootTraceName":"charm exec","startTimeUnixNano":"1714033994376613078","durationMs":86}],"metrics":{"inspectedTraces":6,"inspectedBytes":"71201","completedJobs":1,"totalJobs":1}}
This response represents the traces that were pushed from loki
charm to tempo
up to this moment.
One of the key points of tempo
is its seamless integration with grafana
. To view and inspect traces in a grafana instance, see how to integrate tempo with grafana